UDO - 6 - UDO E2E Examples + Sample code

ThoughtWorthSharing ​​​​​​​HowTo ​​​​​​​

As part of the serie of article about UDO​​​​​​​, I am sharing some example of UDO Procedure I created for different use cases.

I will show examples with the 2 different way to proceed: manually (On Premise only) and with the GUI (On Premise / On Cloud)

Example 1: Open all PPR related objects starting from a General System

Use Case

In order to perform a Manufacturing Simulation, the user need to gather everything related to a specific Routing (General System) and open them in the Simulation App:

  • The Manufactured Assembly made by the selected Routing
  • Only the implemented Engineered Item in the MBOM
  • All the resources available under the related Workstation
  • Everything filtered by the Configuration set in the structure.

Creation

Step1: Clarify the need and context

In order to define efficiently the UDO, an non-exhaustive list of points are checked:

Answer: Not currently existing

  • What actions the user wants to perform in Authoring ?

Answer: Manufacturing Simulation

  • Which PPR structure are managed with Configuration and/or Effectivity ? (if any)

Answer: EBOM by Configuration, MBOM by Configuration

  • What is the starting point on the user point of view ?

Answer: the user is used to work by Routing name (General System)

  • Which data does the user need to work ? (in order to avoid loading whole assembly)

Answer: only the MBOM/EBOM of the Assembly made by the specific Routing and the available resources. No need of context / predecessor assemblies.

  • Data Model: Which object types are currently used ?
    • EBOM:
      • Physical Product
      • 3D Part
      • 3D Shape
    • MBOM:
      • Manufacturing Assemblies
      • Provided Part
    • Process:
      • General System
      • Header Opertation
      • General Operation
      • Loading Operation
    • Resource:
      • Manufacturing Cell
      • Tool
      • Skills
      • NC Machine
  • Data Model: Which relationships are currently used ?
    • EBOM-MBOM:
      • Scope link between head node
      • Partial scope link between Manufacturing Assemblies and top node of EBOM
      • Implement link for lower level
      • No Assignment filters used
    • MBOM-System:
      • Scope link between General Systems (Routing) and Manufacturing Assemblies
      • Implement link between Manufactured Items and Operation
      • No Resulting Product used
    • System-Resource:
      • Scope link between General Systems (Routing) and Resource Zones (Manufacturing Cells)
      • Implement link between Operations and Resources
      • No Capable Resources / Assets used

Step 2: Formalize the steps 

The easiest way to formalize the steps is to do it with a graphical view of the data model. In ensure to check if the step-by-step order is correct, and validate if each action would work.

Step N°

Action

Primitive

1

Get scoped Manufacturing Assembly

navigateFromProcessToMBOM

2

Compact scoped Manufacturing Assemblies

compact

3

Expand All Manufacturing Assembly

I3DexpandMBOM

4

Get (only) the Implemented Engineering Items

navigateFromMBOMToEBOM

5

Expand all the General System

expandSystem

6

Get scoped Manufacturing Cell

navigateFromSystemToResource

7

Expand all Manufacturing Cell

expandResource

For each steps, the primitive “merge” will be used in order to add the retrieved occurrences in the different output Navigation Sets (PRD, PRCS, PROD_SYS, RSC)

It is recommended to use “Compact” primitive for some use case in order to avoid next action to be done on all Occurrences of a navigation set.

Step 3: Implement

Code: (replace ".txt" by ".udoproc.js")

Deploy and test

  • Add the js file on the server in “/server/Apps/VPMMultiDiscipline/V6R2021x/java/src/”

  • Open MQL and create a program

add prog Asset_UDO_from_SYS.1.0.0

file '/home/data/RTV/DEMOR423/server/Apps/VPMMultiDiscipline/V6R2021x/java/src/Asset_UDO_from_SYS.1.0.0.udoproc.js'

property isjavascriptprogram value TRUE

property ProcDisplayName value "UDO Asset - completion from SYS"

property ProcShortDescription value "UDO ASset - PPR Completion from a selected General System"

property ProcUsageContexts value UserDefCompletionForOpenCmd

property ProcCategory value Custo

property ProcVisibility value ALL

property ProcAction value BOTH

property ProcNodeType value Any;

  • In MQL, update the UDO Pack

mod pack UDOProcedures add member program Asset_UDO_from_SYS.1.0.0;

  • Restart your 3DEXPERIENCE Rich Client and test

a. Creation of test data set, here same as the Graphical View

b. Explore in MCB the PPR top nodes, filter the required structure

c. Expand and keep the General System that will be input

d. Select the input System and open the User Defined Open function

e. Select the Procedure, the Apps where to Open and click ok

f. Check if the opened data matches the requirement

Example 2: XPDM Export: Open the 3DParts related to a selected Manufacturing Assembly

Use Case

In order to perform an XPDM Export to share the information to a Partner, the Manufacturing Engineers needs to open in Authoring the EBOM Parts that are related to a specific Manufacturing Assembly.

Creation

Step 1: Clarify the need and context

In order to define efficiently the UDO, an non-exhaustive list of points are checked:

Answer: Not currently existing

  • What actions the user wants to perform in Authoring ?

Answer: XPDM Export of the EBOM

  • Which PPR structure are managed with Configuration and/or Effectivity ? (if any)

Answer: EBOM by Configuration, MBOM by Configuration

  • What is the starting point on the user point of view ?

Answer: the user will select a Manufacturing Assembly

  • Which data does the user need to work ? (in order to avoid loading whole assembly)

Answer: only the EBOM Parts for the export.

  • Data Model: Which object types are currently used ?
    • EBOM:
      • Physical Product
      • 3D Part
      • 3D Shape
    • MBOM:
      • Manufacturing Assemblies
      • Provided Part
  • Data Model: Which relationships are currently used ?
    • EBOM-MBOM:
      • Scope link between head node
      • Implement link for lower level
      • No Assignment filters used

Step 2: Formalize the steps

The easiest way to formalize the steps is to do it with a graphical view of the data model. In ensure to check if the step-by-step order is correct, and validate if each action would work.

Step N°

Action

Primitive

1

Expand All Manufacturing Assembly

I3DexpandMBOM

2

Get (only) the Implemented Engineering Items

navigateFromMBOMToEBOM

3

Compact Manufacturing structure

compact

4

Expand All Engineering Items

I3DexpandEBOM

Step 3: Implement

Code: (replace ".txt" by ".udoproc.js")

Deploy and test

  • Add the js file on the server in “/server/Apps/VPMMultiDiscipline/V6R2021x/java/src/”

  • Open MQL and create a program

add prog Export_XPDM_From_MBOM.1.0.0

file '/home/data/RTV/DEMOR423/server/Apps/VPMMultiDiscipline/V6R2021x/java/src/Export_XPDM_From_MBOM.1.0.0.udoproc.js'

property isjavascriptprogram value TRUE

property ProcDisplayName value "For XPDM Export from MBOM"

property ProcShortDescription value "Explore in MCB EBOM Root Node and MBOM Root node. Then expand and select the Manufacturing Assembly to extract"

property ProcUsageContexts value UserDefCompletionForOpenCmd

property ProcCategory value Custo

property ProcVisibility value ALL

property ProcAction value BOTH

property ProcNodeType value Any;

  • In MQL, update the UDO Pack

mod pack UDOProcedures add member program Export_XPDM_From_MBOM.1.0.0;

  • Restart your 3DEXPERIENCE Rich Client and test

a. Creation of test data set, here same as the Graphical View

b. Explore in MCB the EBOM and MBOM, filter the required structure

c. Expand and keep the Manufacturing Assembly you want to exprot

d. Select the input Manufacturing Assembly and open the User Defined Open function

e. Select the Procedure, the Apps where to Open and click ok

f. Check if the opened data matches the requirement

Example 3: Open PPR from System with current implemented Item and a complete 3D View

Use Case

In order to perform some analysis based on the Process, the Manufacturing Engineers needs to open in Authoring the PPR related to a selected General System. The global PPR contains a lot of Fasteners, only the one implemented in the current System are needed.

Creation

Step 1: Clarify the need and context

In order to define efficiently the UDO, an non-exhaustive list of points are checked:

  • Is an existing UDO Procedure can answer my need ? (check Available Procedures​​​​​​​)

Answer: Not currently existing

  • What actions the user wants to perform in Authoring ?
  • Answer: Manufacturing Simulation
  • Which PPR structure are managed with Configuration and/or Effectivity ? (if any)
  • Answer: EBOM by Configuration, MBOM by Configuration
  • What is the starting point on the user point of view ?
  • Answer: the user is used to work by Routing name (General System)
  • Which data does the user need to work ? (in order to avoid loading whole assembly)
  • Answer: only the MBOM/EBOM of the Assembly made by the specific Routing and the available resources. No need of context / predecessor assemblies.
  • Data Model: Which object types are currently used ?
    • EBOM:
      • Physical Product
      • Fasteners
      • 3D Part
      • 3D Shape
    • MBOM:
      • Manufacturing Assemblies
      • Provided Part
      • Fasten
    • Process:
      • General System
      • Header Opertation
      • General Operation
      • Loading Operation
    • Resource:
      • Manufacturing Cell
      • Tool
      • Skills
      • NC Machine
  • Data Model: Which relationships are currently used ?
    • EBOM-MBOM:
      • Scope link between head node
      • Partial scope link between Manufacturing Assemblies and top node of EBOM
      • Implement link for lower level
      • No Assignment filters used
    • MBOM-System:
      • Scope link between General Systems (Routing) and Manufacturing Assemblies
      • Implement link between Manufactured Items and Operation
      • No Resulting Product used
    • System-Resource:
      • Scope link between General Systems (Routing) and Resource Zones (Manufacturing Cells)
      • Implement link between Operations and Resources
      • No Capable Resources / Assets used

Step 2: Formalize the steps

The easiest way to formalize the steps is to do it with a graphical view of the data model. In ensure to check if the step-by-step order is correct, and validate if each action would work.


Step N°

Action

Primitive

1

Expand the selected System

expandSystem

2

Get (only) the Implemented Manufacturing Items

navigateFromProcessToEBOM

3

Expand the Manufacturing Items

expandMBOM

4

Remove the Fasten objects 

cutOccurrences

5

Get (only) the Implemented Engineering Items

navigateFromMBOMtoEBOM

6

Get the scoped Resource

navigateFromSystemToresource

7

Expand the scoped Resource

expandResource

Step 3: create the UDO interactively​​​​​​

  • Restart your 3DEXPERIENCE Rich Client and test

a. Creation of test data set, 

b. Explore in MCB the EBOM, MBOM, System and Resource, filter the required structure

c. Expand and keep the System

d. Select the input Manufacturing Assembly and open the User Defined Open function

e. Select the Procedure, the Apps where to Open and click ok

f. Check if the opened data matches the requirement